protocol SomeProtocol {
// protocol definition goes here
}
struct SomeStructure: FirstProtocol, AnotherProtocol {
// structure definition goes here
}
class SomeClass: SomeSuperclass, FirstProtocol, AnotherProtocol {
// class definition goes here
}
Protocol定義了規則或需求,像是function或property。Class或是遵從Protocol的型態,則是實現這些function或property。
protocol Name {
func hello()
}
這邊先定義一個叫做name的protocol,裡面的有一個叫hello的function
class Greet :Name {
}
Greet class 遵從了Name這個Protocol,但還沒實作hello這個function,這時會產生一個問題
這時Xcode會說你沒完成這個Protocol,是因為還沒實作裡面的function,直接Fix會完成這個實作
class Greet :Name {
func hello() {
//code
}
這邊定義了一個Name的Protocol並實作了裡面的function在Greet的Class裡,這邊就完成了Protocol的應用,相對應的用法也都在UITableViewDataSource裡面,都有需要實作的方法。算是相當常見的應用。